
using System;

namespace SpotifyGenNHibernate.EN.Spotify
{
        public class AlbumEN
        {
        /**
         *
         */

        private int id;

        /**
         *
         */

        private String nombre;

        /**
         *
         */

        private String portada;

        /**
         *
         */

        private Nullable<DateTime> fechaPublicacion;

        /**
         *
         */

        private bool destacado;

        /**
         *
         */

        private System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones;

        /**
         *
         */

        private String attribute;





        public virtual int Id { get { return id; } set { id = value;  } }


        public virtual String Nombre { get { return nombre; } set { nombre = value;  } }


        public virtual String Portada { get { return portada; } set { portada = value;  } }


        public virtual Nullable<DateTime> FechaPublicacion { get { return fechaPublicacion; } set { fechaPublicacion = value;  } }


        public virtual bool Destacado { get { return destacado; } set { destacado = value;  } }


        public virtual System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> Canciones { get { return canciones; } set { canciones = value;  } }


        public virtual String Attribute { get { return attribute; } set { attribute = value;  } }



        public AlbumEN()
        {
        }



        public AlbumEN(int id, String nombre, String portada, Nullable<DateTime> fechaPublicacion, bool destacado, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones, String attribute)
        {
                this.init (id, nombre, portada, fechaPublicacion, destacado, canciones, attribute);
        }


        public AlbumEN(AlbumEN album)
        {
                this.init (album.Id, album.Nombre, album.Portada, album.FechaPublicacion, album.Destacado, album.Canciones, album.Attribute);
        }

        private void init (int id, String nombre, String portada, Nullable<DateTime> fechaPublicacion, bool destacado, System.Collections.Generic.IList<SpotifyGenNHibernate.EN.Spotify.CancionEN> canciones, String attribute)
        {
                this.Id = id;


                this.Nombre = nombre;

                this.Portada = portada;

                this.FechaPublicacion = fechaPublicacion;

                this.Destacado = destacado;

                this.Canciones = canciones;

                this.Attribute = attribute;
        }

        public override bool Equals (object obj)
        {
                if (obj == null)
                        return false;
                AlbumEN t = obj as AlbumEN;
                if (t == null)
                        return false;
                if (Id.Equals (t.Id))
                        return true;
                else
                        return false;
        }

        public override int GetHashCode ()
        {
                int hash = 13;

                hash += (null == Id ? 0 : this.Id.GetHashCode ());
                return hash;
        }
        }
}
